﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Highlearner
{
	public enum EInstitute
	{
		TAU = 0,
		HUJI = 1,
		BIU = 2,
		BGU = 3,
		HIT = 4,
		Haifa = 5,
		Sapir = 6,
		SCE = 7
	}

	static class CInstitutes
	{
		public struct SInstitute
		{
			public EInstitute Enum;
			public String Name;
		}

		public static SortedList<EInstitute, SInstitute> Institutes;

		static CInstitutes()
		{
			Institutes = new SortedList<EInstitute, SInstitute>();

			Institutes.Add(EInstitute.TAU, new SInstitute() { Enum = EInstitute.TAU, Name = "אוניברסיטת תל אביב" });
			Institutes.Add(EInstitute.HUJI, new SInstitute() { Enum = EInstitute.HUJI, Name = "האוניברסיטה העברית בירושלים" });
			Institutes.Add(EInstitute.BIU, new SInstitute() { Enum = EInstitute.BIU, Name = "אוניברסיטת בר אילן" });
			Institutes.Add(EInstitute.BGU, new SInstitute() { Enum = EInstitute.BGU, Name = "אוניברסיטת בן גוריון" });
			Institutes.Add(EInstitute.HIT, new SInstitute() { Enum = EInstitute.HIT, Name = "המכון הטכנולוגי חולון" });
			Institutes.Add(EInstitute.Haifa, new SInstitute() { Enum = EInstitute.Haifa, Name = "אוניברסיטת חיפה" });
			Institutes.Add(EInstitute.Sapir, new SInstitute() { Enum = EInstitute.Sapir, Name = "המכללה האקדמית ספיר" });
			Institutes.Add(EInstitute.SCE, new SInstitute() { Enum = EInstitute.SCE, Name = "המכללה האקדמית סמי שמעון" });
		}


		public static Miner_Highlearn.API_Highlearn GetAPI(EInstitute institute)
		{
			switch (institute)
			{
				case EInstitute.TAU:
					return (Miner_Highlearn.API_Highlearn)new Miner_Highlearn.API_HL_TAU();
// 					break;
				case EInstitute.HUJI:
					return (Miner_Highlearn.API_Highlearn)new Miner_Highlearn.API_HL_HUJI();
// 					break;
				case EInstitute.BIU:
					return (Miner_Highlearn.API_Highlearn)new Miner_Highlearn.API_HL_BIU();
// 					break;
				case EInstitute.BGU:
					return (Miner_Highlearn.API_Highlearn)new Miner_Highlearn.API_HL_BGU();
// 					break;
				case EInstitute.HIT:
					return (Miner_Highlearn.API_Highlearn)new Miner_Highlearn.API_HL_HIT();
// 					break;
				case EInstitute.Sapir:
					return (Miner_Highlearn.API_Highlearn)new Miner_Highlearn.API_HL_Sapir();
// 					break;
				case EInstitute.Haifa:
					return (Miner_Highlearn.API_Highlearn)new Miner_Highlearn.API_HL_Haifa();
// 					break;
				case EInstitute.SCE:
					return (Miner_Highlearn.API_Highlearn)new Miner_Highlearn.API_HL_SCE();
// 					break;
			}
				/*
				case TMy_University.Colman:
					hl.core = (API_Highlearn)new API_HL_Colman();
					break;
				case TMy_University.Sapir:
					hl.core = (API_Highlearn)new API_HL_Sapir();
					break;
				case TMy_University.CET:
					hl.core = (API_Highlearn)new API_HL_CET();
					break;
				case TMy_University.Afeka:
					hl.core = (API_Highlearn)new API_HL_Afeka();
					break;
				 */

			return null;
		}
	}
}
